<?php
/**
 * Created by PhpStorm.
 * User: Qch
 * Date: 2016/8/14
 * Time: 17:07
 */

/*********************************************************************************
 * InitPHP 3.6 国产PHP开发框架  - 工具库-session
 *-------------------------------------------------------------------------------
 * 版权所有: CopyRight By initphp.com
 * 您可以自由使用该源码，但是在使用过程中，请保留作者信息。尊重他人劳动成果就是尊重自己
 *-------------------------------------------------------------------------------
 * Author:zhu_li time:2014-9-3
 ***********************************************************************************/

namespace J\Web;

/**
 * Session 管理类
 */
class Session
{

    /**
     * Session-设置session值
     * 使用方法：$this->getUtil('session')->set('c', 'd');
     * @param  string $key key值，可以为单个key值，也可以为数组
     * @param  string $value value值
     * @return string
     */
    public static function set($key, $value = '')
    {
        if (!session_id()) static::start();
        if (!is_array($key)) {
            array_set($_SESSION,$key,$value);
            $_SESSION[$key] = $value;
        } else {
            foreach ($key as $k => $v) Session::set($k,$v);
        }
        return true;
    }

    /**
     * Session-session_start()
     * @return bool
     */
    private static function start()
    {
        return session_start();
    }

    /**
     * Session-获取session值
     * 使用方法：$this->getUtil('session')->get('c');
     * @param  string $key key值
     * @return string|array
     */
    public static function get($key)
    {
        if (!session_id()) static::start();
        return array_get($_SESSION,$key,null);
    }

    /**
     * Session-删除session值
     * 使用方法：$this->getUtil('session')->del('c');
     * @param  string $key key值
     *
     */
    public static function del($key)
    {
        if (!session_id()) static::start();
        array_forget($_SESSION,$key);
    }

    /**
     * Session-清空session
     * 使用方法：$this->getUtil('session')->clear();
     */
    public static function clear()
    {
        if (!session_id()) static::start();
        session_destroy();
        $_SESSION = array();
    }

}